流水灯续集
这里写出三种不同的代码,均可是实现流水灯的效果。
代码展示
- 1、最简单的方式,直接输出
void led_display1()
{
while(1){
GPIO_Write(GPIOC,0xfe);
delay(6000000);
GPIO_Write(GPIOC,0xfd);
delay(6000000);
GPIO_Write(GPIOC,0xfb);
delay(6000000);
GPIO_Write(GPIOC,0xf7);
delay(6000000);
GPIO_Write(GPIOC,0xef);
delay(6000000);
GPIO_Write(GPIOC,0xdf);
delay(6000000);
GPIO_Write(GPIOC,0xbf);
delay(6000000);
GPIO_Write(GPIOC,0x7f);
delay(6000000);
}
}
- 2、通过每次移动不同的位数
void led_display2()
{
int i = 0;
while(1){
for(i = 0;i<8;i++){
GPIO_Write(GPIOC,~(0x01<<i));
delay(6000000);
}
}
}
- 3、每次都只移动一位,但是采用或0x01实现将每次移位自动补充的0变成1。这种方式和之前的每次移位后加1的操作本质上是相同的。
void led_display()
{
int i = 0xfe;
int j = 8;
while(j){
GPIO_Write(GPIOC,i);
delay(6000000);
i = i << 1;
i = i | 0x01;
j--;
}
}